export interface Avatar {
  avatar_id: string;
  avatar_name: string;
  gender: string;
  preview_image_url: string;
  preview_video_url: string;
  premium: boolean;
}

export interface TalkingPhoto {
  talking_photo_id: string;
  talking_photo_name: string;
  preview_image_url: string;
}

export interface Video {
  id?: number;
  video_id: string;
  title?: string;
  status: string;
  type?: string;
  duration?: number;
  video_url?: string;
  thumbnail_url?: string;
  gif_url?: string;
  folder_id?: string;
  callback_id?: string;
  created_at?: string;
  updated_at?: string;
  error?: string;
}

export interface VideoGenerateRequest {
  caption?: boolean;
  title?: string;
  callback_id?: string;
  callback_url?: string;
  folder_id?: string;
  dimension: {
    width: number;
    height: number;
  };
  video_inputs: VideoInput[];
}

export interface VideoInput {
  character?: Record<string, unknown>;
  voice: Record<string, unknown>;
  background?: Record<string, unknown>;
}

// HeyGen Account Types
export interface HeyGenAccount {
  id: number;
  name: string;
  api_key: string;
  is_active: boolean;
  username?: string;
  email?: string;
  first_name?: string;
  last_name?: string;
  remaining_quota?: number;
  created_at: string;
  updated_at: string;
}

export interface AddAccountRequest {
  name: string;
  api_key: string;
}

// Re-export avatar types
export * from './avatar';

// Re-export social account types
export * from './socialAccount';
